Contact centers, such as Automatic Call Distribution or ACD systems, are employed by many enterprises to service customer contacts. A typical contact center includes a switch and/or server to receive and route incoming packet-switched and/or circuit-switched contacts and one or more resources, such as human agents and automated resources (e.g., Interactive Voice Response (IVR) units), to service the incoming contacts. Contact centers distribute contacts, whether inbound or outbound, for servicing to any suitable resource according to predefined criteria.
Contact centers are typically designed to service contacts as efficiently as possible. Many different routing and queuing algorithms exist that attempt to increase the accuracy and speed with which contacts are handled. For example, different algorithms exist for different contact media types. When a customer sends in an email with a question to a contact center, they are not always concerned with receiving immediate feedback. In contrast, when a customer calls into a contact center with a question they almost certainly do not want to wait for days to be attended to. The rules regarding how these two different media types are handled vary significantly. When a call comes into a call center, the amount of time a call has waited may be the most important parameter that determines where that contact is sent. However, when an email comes into a contact center, the matching of agent skills with contact requirements may be the most important parameter and the amount of time that contact sits in the queue is not as high a priority. Even though routing of the contact is usually left up to the contact center algorithms, the responsibility of the interaction and handling of the contact is up to the agent.
Typically, when a contact is received in a contact center, an IVR, human agent, or some other resource collects information pertinent to the contact. This information may include, the name of person initiating the contact, where they are located, what the contact generally relates to, and any other relatively easy to determine parameters. The server takes the information and populates an information field corresponding to that contact.
The workflow routing engine directs contacts to various agents based on algorithms and predetermined criteria as described above. Normally predetermined criteria include limits on expected, predicted, and/or actual call wait time for one or more selected sets or queues of customer contacts, limits on the number of idle agents, limits on customer queue lengths, and various other limits and policies that must be set according to some management decisions. Such limits and policies are typically defined by contact center management in a Service Level Agreement or SLA. Once the contact center is programmed it is forced to work within the constraints set down by the contact center manager or operator.
The workflow engine often identifies, or is able to identify, an optimal agent for a given contact based on a combination of agent skills, contactor identity, contactor revenue history, the contactor's customer class membership (e.g., gold, silver, or bronze), and contact needs and/or requirements without regard to other policy considerations, such as customer expected, predicted, or actual wait time, etc. Often, policy limits for a set of customers, such as a customer queue, are exceeded. For example, a queue may be experiencing expected, predicted, and/or actual wait times in excess of policy limit(s). At this point the workflow routing engine has no alternative but to route the contact to a suboptimal agent. As used herein, an “optimal agent” refers to an agent that would be selected by the workflow engine to service a selected customer and corresponding customer in the absence of a contact center policy limit and/or without regard to agent availability, and “suboptimal agent” to an agent that is not considered to be an optimal agent for the selected contact and corresponding customer. Depending on whether the contact is real time or not real time, an “optimal agent” may be on or off shift at the time the workflow engine makes the agent routing decision. A suboptimal agent may only have a subset of the necessary skills required to handle the given contact. Alternatively, this agent may not be as proficient at handling this type of contact, but given enough time the contact will be serviced properly. Whatever the situation is, the agent who is selected to assign to the current contact is not the best (optimal) one in the contact center to handle the contact. The workflow engine often knows that it made a suboptimal routing decision, unlike the agent who has no idea he was the next best choice. This type of situation arises in contact centers on a daily, even hourly, basis and is an inherent source of contact center inefficiency and customer dissatisfaction.
A number of examples illustrate the distinction between optimal and suboptimal agents.
In a first example, a contact enters a contact center by a phone call. The workflow routing engine determines that Agent A is the best or optimal agent to handle this particular contact because he is the highest skilled agent then on shift regarding the customer needs identified for the contact by the Interactive Voice Response or IVR unit. However, Agent A is not available to service the phone call currently because he is working on another contact from a different customer having the same customer needs. Because the optimal Agent A is unavailable to service the call, the call is routed to the next agent, Agent B. Agent B proceeds to handle the call and after a certain amount of time finishes that call. However, Agent A may have been able to handle both calls at the same time because they were directed to the same customer needs. The contact center has just experienced a drop in efficiency and/or customer satisfaction without anyone ever knowing it.
In a second example, Agent A is only enabled for email and she receives a contact. Agent A begins working on the given contact and continues to go about her business. However, after a period of time has lapsed, the customer who initiated the original contact by email wants an immediate answer and calls the contact center. Now there exist two contacts that were initiated by the same customer and are related to the same subject matter. The problem is that Agent A is not enabled to handle voice so the second contact is routed by the workflow routing engine to Agent B. The routing engine knows that both of these contacts are from the same person and are directed to the same subject matter, but does not tell anyone. So Agent B receives the voice contact and goes about helping the customer in the normal course. Now there are two agents in the contact center servicing the same subject matter from the same customer and neither one of them are aware of it. Apart from the danger of inconsistent responses being provided to the customer, the contact center is operating in a very inefficient manner without anyone knowing about it.
In a third example having the same facts as the second example, agent A is enabled for voice calls but is servicing another voice call. The engine initially decides to route the voice contact to agent A; however, after about 30 minutes of waiting, routes the voice contact to agent B due to SLA requirements. The waiting customer may have been willing to wait for Agent A to become available had the customer known that Agent A would provide better service.
In both of the examples, the workflow routing engine is aware of the relation between the contacts but is unable to route the contacts to a common agent due to other parameters it had to consider. In neither of these examples is the customer data provided to Agents A and B particularly helpful in identifying the inefficiency. The customer data is mostly historical and fails to provide any insight to the ongoing interactions that may currently be active in the contact center.